//package com.source.code.extractor.impl.info;
//
//import com.github.javaparser.ast.CompilationUnit;
//import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
//import com.github.javaparser.ast.body.MethodDeclaration;
//import com.source.code.common.OwnershipEnum;
//import com.source.code.common.TopClassTypeEnum;
//import com.source.code.extractor.MethodInfoExtractor;
//import com.source.code.extractor.MethodInnerExtractor;
//import com.source.code.model.MethodInfoStatic;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * 接口方法信息提取器
// *
// * @author wangchangjie
// * @date 2024/02/01
// */
//public class InterfaceMethodInfoExtractor implements MethodInfoExtractor {
//
//    private MethodInnerExtractor methodInnerExtractor;
//
//    public InterfaceMethodInfoExtractor(MethodInnerExtractor methodInnerExtractor) {
//        this.methodInnerExtractor = methodInnerExtractor;
//    }
//
//    @Override
//    public List<MethodInfoStatic> extractMethodInfo(ClassOrInterfaceDeclaration classDeclaration,
//                                              CompilationUnit compilationUnit) {
//        List<MethodDeclaration> methods = classDeclaration.getMethods();
//        List<MethodInfoStatic> arrayList = new ArrayList<>();
//        for (MethodDeclaration method : methods) {
//            MethodInfoStatic methodInfo = new MethodInfoStatic()
//                .setClassAllName(classDeclaration.getFullyQualifiedName().orElse("unFound"))
//                .setInterfaceAllNames(methodInnerExtractor.getInterfaceNames(classDeclaration))
//                .setSuperClassAllName(methodInnerExtractor.getSuperClassName(classDeclaration))
//                .setOverride(methodInnerExtractor.checkOverrideMethod(method))
//                .setMethodAllName(methodInnerExtractor.getMethodAllName(method, classDeclaration))
//                .setTopClassType(TopClassTypeEnum.INTERFACE.getCode())
//                .setOwnership(OwnershipEnum.SELF.getCode())
//                .setMethodAbsName(methodInnerExtractor.getMethodAbsName(method, classDeclaration,
//                    compilationUnit));
////                .setChildMethodAllNames(methodInnerExtractor.getChildMethodAllNames(method, classDeclaration, compilationUnit));
//            arrayList.add(methodInfo);
//        }
//        return arrayList;
//    }
//}
